Agent skills 学习
介绍
https://code.claude.com/docs/zh-CN/skills
Skills 概念
Agent Skills 是扩展 Claude 功能的模块化能力。每个 Skill 包含指令、元数据和可选资源(脚本、模板),Claude 在相关时会自动使用这些资源。
| 级别 | 加载时间 | token 成本 | 内容 |
|---|---|---|---|
| 第 1 级:元数据 | 始终(启动时) | 每个 Skill 约 100 个token | YAML 前置数据中的 name 和 description |
| 第 2 级:指令 | 触发 Skill 时 | 不到 5k 个token | 包含指令和指导的 SKILL.md 主体 |
| 第 3 级+:资源 | 按需 | 实际上无限制 | 通过 bash 执行的捆绑文件,不将内容加载到上下文中 |
为什么使用 Skills
Skills 是可重用的、基于文件系统的资源,为 Claude 提供特定领域的专业知识:工作流、上下文和最佳实践,将通用代理转变为专家。与提示不同(提示是对话级别的一次性任务指令),Skills 按需加载,无需在多个对话中重复提供相同的指导。
思考
Agent skill 是什么?在我看来,它是一种工程化组织 "知识" 的方式,这里的 "知识" 打了双引号,是因为我们常规理解的知识,一般是静态的知识,比如文档,数据等。但是在 agent skill 中的 "知识",还包含了可以运行的脚本或者二进制工具,更像是一个领域/方面的所有信息的整合。
所以从本质上来说,agent skills 和 rag 知识库其实是一个东西。他们都是一种知识的组织方式。只不过 rag 是静态的。而 agent skills 是动态和静态的结合。
都是 "按照定义好的规范,来组织知识,我会按需加载知识。"
我们可能会尝试在前面加入一个意图识别,比如获取到每个知识库的描述信息,然后一个问题过来,可以识别使用哪个知识库来完成这个任务,那么实际上应该也可以实现一个简单的相同的效果。(有点儿 agentic rag的意思了?)
比较
| 能力维度 | Skills | Subagents | MCP Servers | Claude.md | Commands | Hooks |
|---|---|---|---|---|---|---|
| 触发方式 | 自主触发 | 手动+自主触发 | 自主触发 | 被动固定触发 | 手动+自主触发(自主触发最近新增) | 生命周期固定触发 |
| 上下文效率 | High(三层渐进式披露) | High | Low(启动时全量加载) | Low | / | / |
| 可并行化 | ❌ | ✅ | ❌ | ❌ | ❌ | / |
| 可共享 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 模 块化程度 | High(专用目录结构) | Mid | High | Low | Mid | Low |
| 工具权限 | ✅ | ✅ | ❌ | / | ✅ | ❌ |
| 可被组合 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| 确定性 | 低 AI决策,使用 Tool Use 作为决策方式,并且涉及到多次 tool use | 中 AI决策,使用 Tool Use 作为决策方式 | 中 AI决策,使用 Tool Use 作为决策方式 | 高 固定注入 | 用户手动触发:高 使用 Tool Use 作为决策方式:中 | 最高 在固定阶段,执行确定程序 |